package com.lancoo.edu.platform.operation.commons.domain.api.system;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 产品的初始化配置信息【API】实体
 * @author pky
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProductInfo implements Serializable {
    /**
     * 集成产品类型，0为基础平台，1为学科教育云，2为AI教学，3为一体化智慧校园，4为网上课堂，5为智能考场，6为人工智能实训（其它待补充）
     */
    @JSONField(name = "ProductType")
    private Integer productType;
    /**
     * 集成产品名称
     */
    @JSONField(name = "ProductName")
    private String productName;
    /**
     * 产品场景
     * 3：教育局；2：教育集团；1：中心校
     */
    @JSONField(name = "ProductUseRange")
    private String productUseRange;

    @JSONField(name = "ClinetDownUrl")
    private String clinetDownUrl;

    /**
     * 基础平台WEB站点访问根路径
     */
    @JSONField(name = "WebRootUrl")
    private String baseUrl;
    /**
     * 基础平台资源服务器站点访问根路径
     */
    @JSONField(name = "ResHttpRootUrl")
    private String baseResourceUrl;

    /**
     *
     */
    @JSONField(name = "WebIndexUrl")
    private String webIndexUrl;


    /**
     *
     */
    @JSONField(name = "LoginServerRootUrl")
    private String loginServerRootUrl;

    /**
     *
     */
    @JSONField(name = "LockerServerRootUrl")
    private String lockerServerRootUrl;

    /**
     *
     */
    @JSONField(name = "ProVersion")
    private String proVersion;

    /**
     *
     */
    @JSONField(name = "LockerVersion")
    private String lockerVersion;

    /**
     * 教育局/教育集团/中心校ID
     */
    @JSONField(name = "EduID")
    private String eduId;
    /**
     * 教育局/教育集团/中心校名称
     */
    @JSONField(name = "BureauName")
    private String eduName;
    /**
     * 集成产品的LOGO地址全路径(40*40，用于左上角)
     */
    @JSONField(name = "ProductLogoUrl")
    private String productLogoUrl;

    @JSONField(name = "AreaInfos")
    private List<AreaInfo> AreaInfos;

    /**
     * 集成版本号（3.0或3.0+或4.0）,2023年9月后为4.0
     *  4.0及以上为java版
     */
    @JSONField(name = "ISCVersion")
    private String isVersion;

    /**
     * 客户端基础插件包下载地址（为空时不需要检测）
     */
    @JSONField(name = "ClinetDownUrl")
    private String clientDownUrl;

    @Data
    public static class AreaInfo implements Serializable{

        @JSONField(name = "ProvinceID")
        private String provinceID;

        @JSONField(name = "ProvinceName")
        private String provinceName;

        @JSONField(name = "CityID")
        private String cityId;

        @JSONField(name = "CountyName")
        private String countyName;

        @JSONField(name = "AreaLevel")
        private String areaLevel;

    }

}
